Riot.js-এ Props ব্যবহারের মাধ্যমে আপনি Dynamic Components তৈরি করতে পারেন। Props হল কম্পোনেন্টের বাইরে থেকে পাস করা ডাটা, যা কম্পোনেন্টের ভিতরে ব্যবহার করা হয়। এই Props এর মাধ্যমে, আপনি কম্পোনেন্টের আচরণ বা UI ডাইনামিকভাবে পরিবর্তন করতে পারেন।
Props এর মাধ্যমে Dynamic Components তৈরি
Riot.js-এ, যখন আপনি কম্পোনেন্ট তৈরি করেন, তখন আপনি opts (অথবা Props) ব্যবহার করে বাহির থেকে ডাটা পাস করতে পারেন। এতে করে কম্পোনেন্টটির অভ্যন্তরীণ আচরণ পরিবর্তিত হতে পারে এবং UI রেন্ডারিংও ডাইনামিকভাবে বদলাতে পারে।
উদাহরণ: Props দিয়ে Dynamic Title কম্পোনেন্ট তৈরি
ধরা যাক, আপনি একটি Card কম্পোনেন্ট তৈরি করতে চান, যার শিরোনাম Dynamic হতে পারে, অর্থাৎ Props এর মাধ্যমে শিরোনাম পরিবর্তন করা যাবে।
১. Card.riot কম্পোনেন্ট তৈরি:
<!-- Card.riot -->
<card>
<div class="card">
<h2>{opts.title}</h2> <!-- Use props to display the title -->
<p>{opts.content}</p> <!-- Use props to display dynamic content -->
</div>
<style>
.card {
border: 1px solid #ddd;
padding: 20px;
border-radius: 5px;
margin: 10px 0;
}
h2 {
color: #333;
}
</style>
</card>
এখানে:
opts.titleএবংopts.contentহলো Props যা বাহির থেকে কম্পোনেন্টে পাস করা হবে।- এই Props দ্বারা শিরোনাম এবং কন্টেন্ট ডাইনামিকভাবে প্রদর্শিত হবে।
২. App.riot ফাইলে Card কম্পোনেন্ট ব্যবহার:
<!-- App.riot -->
<app>
<h1>Dynamic Card Components</h1>
<!-- Passing dynamic title and content to the Card component -->
<card title="Card 1 Title" content="This is the content of Card 1"></card>
<card title="Card 2 Title" content="This is the content of Card 2"></card>
<card title="Card 3 Title" content="This is the content of Card 3"></card>
</app>
<script>
import './Card.riot'; // Importing the Card component
</script>
এখানে:
- Props (
title,content) কেCardকম্পোনেন্টে পাস করা হচ্ছে। - প্রতিটি
Cardকম্পোনেন্টের জন্য ভিন্ন ভিন্ন শিরোনাম এবং কন্টেন্ট পাস করা হচ্ছে।
আরও ডাইনামিক কম্পোনেন্ট তৈরি:
আমরা যদি আরও ডাইনামিক বা কনফিগারযোগ্য কম্পোনেন্ট তৈরি করতে চাই, তবে Props এর সাথে JavaScript ফাংশন, ইভেন্ট হ্যান্ডলার, বা অবজেক্ট পাস করেও আরও বেশি কার্যকারিতা যোগ করতে পারি।
উদাহরণ: Dynamic Button কম্পোনেন্ট
ধরা যাক, আমরা একটি Button কম্পোনেন্ট তৈরি করতে চাই, যেখানে label (লেবেল) এবং onClick (ক্লিক হ্যান্ডলার) Props হিসেবে পাস করা যাবে।
<!-- Button.riot -->
<button class="dynamic-button" onclick={opts.onClick}>{opts.label}</button>
<style>
.dynamic-button {
padding: 10px 20px;
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
border-radius: 5px;
}
.dynamic-button:hover {
background-color: #0056b3;
}
</style>
এখানে:
opts.labelদ্বারা Button এর টেক্সট ডাইনামিকভাবে পরিবর্তিত হবে।opts.onClickদ্বারা ক্লিকের জন্য একটি কাস্টম ফাংশন পাস করা যাবে।
App.riot এ Dynamic Button ব্যবহার:
<app>
<h1>Dynamic Button Example</h1>
<!-- Passing label and onClick function dynamically -->
<button label="Click Me" onClick={handleClick}></button>
<button label="Submit" onClick={submitForm}></button>
<button label="Cancel" onClick={cancelAction}></button>
</app>
<script>
import './Button.riot'; // Importing the Button component
export default {
handleClick() {
alert('Button Clicked!');
},
submitForm() {
alert('Form Submitted!');
},
cancelAction() {
alert('Action Cancelled!');
}
}
</script>
এখানে:
- প্রতিটি
Buttonকম্পোনেন্টে ভিন্ন ভিন্নlabelএবংonClickপাস করা হয়েছে। handleClick,submitForm, এবংcancelActionফাংশনগুলি পাস করা হয়েছে, যেগুলি বোতাম ক্লিক হলে কার্যকর হবে।
Props দিয়ে Dynamic কম্পোনেন্ট তৈরি করার সুবিধা:
- Reusability (পুনঃব্যবহারযোগ্যতা): একবার তৈরি করা কম্পোনেন্ট বিভিন্ন ডাটা এবং কনফিগারেশন দিয়ে পুনঃব্যবহার করা যায়।
- Modularity (মডুলারিটি): কম্পোনেন্টের ভিতরে শুধু একটি সাধারণ লজিক থাকবে, এবং বাহির থেকে Props দিয়ে সেটি কাস্টমাইজ করা যাবে।
- Flexibility (নমনীয়তা): Props ব্যবহার করে কম্পোনেন্টের আচরণ ডাইনামিকভাবে পরিবর্তন করা যায়, যেমন UI, ইভেন্ট হ্যান্ডলার, স্টাইল ইত্যাদি।
Riot.js-এ Props ব্যবহার করে আপনি খুব সহজেই ডাইনামিক এবং পুনঃব্যবহারযোগ্য কম্পোনেন্ট তৈরি করতে পারেন। বাহির থেকে পাস করা ডাটা বা কাস্টমাইজড ফাংশনগুলির মাধ্যমে আপনার কম্পোনেন্টের আচরণ পরিবর্তন করা সম্ভব। এটি কোডকে আরও মডুলার, রক্ষণাবেক্ষণযোগ্য, এবং ডাইনামিক করে তোলে।
Read more